<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">















 
 
 
 
 
 
 
  
  


<html>
  <head>
    <script type="text/javascript" language="JavaScript">
    ORIGINAL_PAGE_PATH = "/appengine/docs/python/tools/webapp/running.html";
    </script>
    
    
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Running the Application - Google App Engine - Google Code</title>
<script type="text/javascript"><!--
(function(){function a(){this.t={};this.tick=function(c){this.t[c]=(new Date).getTime()};this.tick("start")}var b=new a;window.jstiming={Timer:a,load:b};if(window.external&&window.external.pageT)window.jstiming.pt=window.external.pageT;})();

var _tocPath_ = '/appengine/docs/_toc.ezt';
var codesite_token = null;
//--></script>
<link href="../../../../../css/codesite.pack.04102009.css" type="text/css" rel="stylesheet"></link>
<script src="../../../../../js/codesite_head.pack.04102009.js" type="text/javascript"></script>
<script type="text/javascript">CODESITE_CSITimer['load'].tick('bhs');</script>
<link rel="search" type="application/opensearchdescription+xml" title="Google Code" href="http://code.google.com/osd.xml" />

<!--[if IE]><link rel="stylesheet" type="text/css" href="../../../../../css/iehacks.css" /><![endif]-->

    <link href="../../../../../css/semantic_headers.css" rel="stylesheet" type="text/css" />
    <link href="../../../../css/local_extensions.css" rel="stylesheet" type="text/css" />
  </head>

  <body class="gc-documentation">

    
    
    
</a>

<div id="gb">
 <span>
  
    <a id="lang-dropdown" class="dropdown" href="http://code.google.com" onclick="return false;"><img class="globeicon" src="../../../../../images/globe2_small.png"/><span>English</span></a>
  
 </span>
</div>

<div class="gbh" style="left: 0pt;"></div>
<div class="gbh" style="right: 0pt;"></div>


<style type="text/css">
  #gc-topnav h1 {
    padding: 0 0 0 6px;
  }
</style>


<div id="gc-container">
<a name="top"></a>
<div id="skipto">
  <a href="#gc-pagecontent">Skip to page content</a>
  <a href="#gc-toc">Skip to main navigation</a>
</div>

<div id="gc-header">
  <div id="logo"><a href="http://code.google.com">
  
  
     <img src="../../../../../images/cleardot.gif" height="1px" width="1px" alt="Google Code Home Page" id="gc-logo-img"/>
  
  
  </a></div>
  <div id="search">
    <div id="searchForm" class="searchForm">
      <form id="cse" action="http://www.google.com/cse" accept-charset="utf-8" class="gsc-search-box" onsubmit="executeGSearch(document.getElementById('gsearchInput').value); return false;">
      <noscript>
      <input type="hidden" name="cref" value="http://code.google.com/cse/googlecode-context.xml"/>
      </noscript>
        <table class="gsc-search-box" cellpadding="0" cellspacing="0">
          <tbody>
            <tr>
              <td class="gsc-input">
                <input id="gsearchInput" type="text" name="q" maxlength="2048" class="gsc-input" autocomplete="off" title="Google Code Search" style="width:345px"/>
              </td>
              <td class="gsc-search-button">
                <div id="cs-searchresults" onclick="event.cancelBubble = true;"></div>
                <input title="Search" id="gsearchButton" class="gsc-search-button" name="sa" value="Search" type="submit"/>
              </td>
            </tr>
            <tr>
              <td colspan="2" class="greytext">e.g. "templates" or "datastore"</td>
            </tr>
          </tbody>
        </table>
      </form>
    </div> <!-- end searchForm -->
  </div> <!-- end search -->
</div> <!-- end gc-header -->


<div id="codesiteContent">

<a name="gc-topnav-anchor"></a>
<div id="gc-topnav">
  <h1>Google App Engine</h1>
  <ul id="docs" class="gc-topnav-tabs">

    <li id="home_link">
      <a href="../../../../index.html" title="Google App Engine home page">Home</a>
    </li>
  
    <li id="docs_link">
      <a href="../../../index.html" class="selected" title="Official Google App Engine documentation">Docs</a>
    </li>
  
    <li id="faq_link">
      <a href="../../../../kb/index.html" title="Answers to frequently asked questions about Google App Engine">FAQ</a>
    </li>
  
    <li id="articles_link">
      <a href="../../../../articles/index.html" title="Focused articles and tutorials for Google App Engine developers">Articles</a>
    </li>
  
    <li>
      <a href="http://googleappengine.blogspot.com/" title="Official Google App Engine blog">Blog</a>
    </li>
  
    <li>
      <a href="../../../../community.html" title="Community home for Google App Engine">Community</a>
    </li>
  
    <li>
      <a href="../../../../terms.html" title="Google App Engine terms of service">Terms</a>
    </li>
  
    <li>
      <a href="../../../../downloads.html" title="Download Google App Engine">Download</a>
    </li>
  

  </ul>
</div> <!-- end gc-topnav -->

    <div class="g-section g-tpl-170">

      <div class="g-unit g-first" id="gc-toc">
        <ul>
  <li><a href="../../../../downloads.html">Downloads</a></li>
  <li><a href="http://code.google.com/status/appengine">System Status</a></li>
  <li><a href="http://code.google.com/p/googleappengine/issues/list">Issue Tracker</a></li>
</ul>
<div class="line"></div>
<ul>
  <li><h2>Getting Started</h2>
    <ul>
      <li><a href="../../../whatisgoogleappengine.html">What Is Google App Engine?</a></li>
      <li><a href="../../../java/gettingstarted/index.html">Java</a>
        <ul>
              <li><a href="../../../java/gettingstarted/introduction.html">Introduction</a></li>
    <li><a href="../../../java/gettingstarted/installing.html">Installing the Java SDK</a></li>
    <li><a href="../../../java/gettingstarted/creating.html">Creating a Project</a></li>
    <li><a href="../../../java/gettingstarted/usingusers.html">Using the Users Service</a></li>
    <li><a href="../../../java/gettingstarted/usingjsps.html">Using JSPs</a></li>
    <li><a href="../../../java/gettingstarted/usingdatastore.html">Using the Datastore with JDO</a></li>
    <li><a href="../../../java/gettingstarted/staticfiles.html">Using Static Files</a></li>
    <li><a href="../../../java/gettingstarted/uploading.html">Uploading Your Application</a></li>

        </ul>
      </li>
      <li><a href="../../gettingstarted/index.html">Python</a>
        <ul>
            <li><a href="../../gettingstarted/introduction.html">Introduction</a></li>
  <li><a href="../../gettingstarted/devenvironment.html">The Development Environment</a></li>
  <li><a href="../../gettingstarted/helloworld.html">Hello, World!</a></li>
  <li><a href="../../gettingstarted/usingwebapp.html">Using the webapp Framework</a></li>
  <li><a href="../../gettingstarted/usingusers.html">Using the Users Service</a></li>
  <li><a href="../../gettingstarted/handlingforms.html">Handling Forms With webapp</a></li>
  <li><a href="../../gettingstarted/usingdatastore.html">Using the Datastore</a></li>
  <li><a href="../../gettingstarted/templates.html">Using Templates</a></li>
  <li><a href="../../gettingstarted/staticfiles.html">Using Static Files</a></li>
  <li><a href="../../gettingstarted/uploading.html">Uploading Your Application</a></li>

        </ul>
      </li>
    </ul>
  </li>
</ul>
<div class="line"></div>
<ul>
  <li><h2>Java <sup class="new">Early Look</sup></h2>
    <ul>
          <li><a href="../../../java/overview.html">Overview</a></li>
    <li><a href="../../../java/runtime.html">Servlet Environment</a></li>
    <li><a href="../../../java/datastore/index.html">Storing Data</a>
      <ul>
            <li><a href="../../../java/datastore/overview.html">Overview</a></li>
    <li><a href="../../../java/datastore/usingjdo.html">Using JDO</a></li>
    <li><a href="../../../java/datastore/dataclasses.html">Defining Data Classes</a></li>
    <li><a href="../../../java/datastore/creatinggettinganddeletingdata.html">Creating, Getting and Deleting Data</a></li>
    <li><a href="../../../java/datastore/queriesandindexes.html">Queries and Indexes</a></li>
    <li><a href="../../../java/datastore/transactions.html">Transactions</a></li>
    <li><a href="../../../java/datastore/relationships.html">Relationships</a></li>
    <li><a href="../../../java/datastore/usingjpa.html">Using JPA</a></li>
    <li><a href="../../../java/javadoc/com/google/appengine/api/datastore/package-summary.html">Low-level API</a></li>

      </ul>
    </li>
    <li><a href="../../../java/apis.html">Services</a>
      <ul>
        <li><a href="../../../java/memcache/index.html">Memcache</a>
          <ul>
                <li><a href="../../../java/memcache/overview.html">Overview</a></li>
    <li><a href="../../../java/memcache/usingjcache.html">Using JCache</a></li>
    <li><a href="../../../java/javadoc/com/google/appengine/api/memcache/package-summary.html">Low-level API</a></li>

          </ul>
        </li>
        <li><a href="../../../java/urlfetch/index.html">URL Fetch</a>
          <ul>
                <li><a href="../../../java/urlfetch/overview.html">Overview</a></li>
    <li><a href="../../../java/urlfetch/usingjavanet.html">Using java.net</a></li>
    <li><a href="../../../java/javadoc/com/google/appengine/api/urlfetch/package-summary.html">Low-level API</a></li>

          </ul>
        </li>
        <li><a href="../../../java/mail/index.html">Mail</a>
          <ul>
                <li><a href="../../../java/mail/overview.html">Overview</a></li>
    <li><a href="../../../java/mail/usingjavamail.html">Using JavaMail</a></li>
    <li><a href="../../../java/javadoc/com/google/appengine/api/mail/package-summary.html">Low-level API</a></li>

          </ul>
        </li>
        <li><a href="../../../java/images/index.html">Images</a>
          <ul>
                <li><a href="../../../java/images/overview.html">Overview</a></li>
    <li><a href="../../../java/javadoc/com/google/appengine/api/images/package-summary.html">API Reference</a></li>

          </ul>
        </li>
        <li><a href="../../../java/users/index.html">Google Accounts</a>
          <ul>
                <li><a href="../../../java/users/overview.html">Overview</a></li>
    <li><a href="../../../java/javadoc/com/google/appengine/api/users/package-summary.html">API Reference</a></li>

          </ul>
        </li>
      </ul>
    </li>
    <li><a href="../../../java/javadoc/index.html">Javadoc Reference</a></li>
    <li><a href="../../../java/jrewhitelist.html">JRE Class White List</a></li>
    <li><a href="../../../java/config/index.html">Configuration</a>
      <ul>
            <li><a href="../../../java/config/webxml.html">Deployment Descriptor</a></li>
    <li><a href="../../../java/config/appconfig.html">App Config</a></li>
    <li><a href="../../../java/config/indexconfig.html">Index Config</a></li>
    <li><a href="../../../java/config/cron.html">Scheduled Tasks</a></li>

      </ul>
    </li>
    <li><a href="../../../java/tools/index.html">Tools</a>
      <ul>
            <li><a href="../../../java/tools/devserver.html">Development Server</a></li>
    <li><a href="../../../java/tools/uploadinganapp.html">Uploading and Managing</a></li>
    <li><a href="../../../java/tools/eclipse.html">Google Plugin for Eclipse</a></li>
    <li><a href="../../../java/tools/ant.html">Using Apache Ant</a></li>

      </ul>
    </li>
    <li><a href="../../../java/howto/index.html">How-To</a>
      <ul>
              <li><a href="../../../java/howto/unittesting.html">Unit Testing</a></li>

      </ul>
    </li>

    </ul>
  </li>
</ul>
<div class="line"></div>
<ul>
  <li><h2>Python</h2>
    <ul>
          <li><a href="../../overview.html">Overview</a></li>
    <li><a href="../../runtime.html">CGI Environment</a></li>
    <li><a href="../../datastore/index.html">Storing Data</a>
      <ul>
             <li><a href="../../datastore/overview.html">Overview</a></li>
     <li><a href="../../datastore/entitiesandmodels.html">Entities and Models</a></li>
     <li><a href="../../datastore/creatinggettinganddeletingdata.html">Creating, Getting and Deleting Data</a></li>
     <li><a href="../../datastore/keysandentitygroups.html">Keys and Entity Groups</a></li>
     <li><a href="../../datastore/queriesandindexes.html">Queries and Indexes</a></li>
     <li><a href="../../datastore/transactions.html">Transactions</a></li>
     <li><a href="../../datastore/typesandpropertyclasses.html">Types and Property Classes</a></li>
     <li><a href="../../datastore/gqlreference.html">GQL Reference</a></li>

     <li><span class="tlw-title tlw-expanded">Reference</span>
       <ul>
         <li><a href="../../datastore/modelclass.html">Model</a></li>
         <li><a href="../../datastore/expandoclass.html">Expando</a></li>
         <li><a href="../../datastore/polymodelclass.html">PolyModel</a></li>
         <li><a href="../../datastore/propertyclass.html">Property</a></li>
         <li><a href="../../datastore/queryclass.html">Query</a></li>
         <li><a href="../../datastore/gqlqueryclass.html">GqlQuery</a></li>
         <li><a href="../../datastore/keyclass.html">Key</a></li>
         <li><a href="../../datastore/functions.html">Functions</a></li>
         <li><a href="../../datastore/exceptions.html">Exceptions</a></li>
       </ul>
     </li>

      </ul>
    </li>
    <li><a href="../../apis.html">Services</a>
      <ul>
        <li><a href="../../memcache/index.html">Memcache</a>
          <ul>
                 <li><a href="../../memcache/overview.html">Overview</a></li>
      <li><a href="../../memcache/usingmemcache.html">Using Memcache</a></li>
     <li><span class="tlw-title tlw-expanded">Reference</span>
       <ul>
         <li><a href="../../memcache/clientclass.html">Client</a></li>
         <li><a href="../../memcache/functions.html">Functions</a></li>
       </ul>
     </li>

          </ul>
        </li>
        <li><a href="../../urlfetch/index.html">URL Fetch</a>
          <ul>
                 <li><a href="../../urlfetch/overview.html">Overview</a></li>
     <li><span class="tlw-title tlw-expanded">Reference</span>
       <ul>
         <li><a href="../../urlfetch/fetchfunction.html">The fetch Function</a></li>
         <li><a href="../../urlfetch/responseobjects.html">Response Objects</a></li>
         <li><a href="../../urlfetch/exceptions.html">Exceptions</a></li>
       </ul>
     </li>

          </ul>
        </li>
        <li><a href="../../mail/index.html">Mail</a>
          <ul>
                 <li><a href="../../mail/overview.html">Overview</a></li>
     <li><a href="../../mail/sendingmail.html">Sending Mail</a></li>
     <li><a href="../../mail/attachments.html">Attachments</a></li>
     <li><span class="tlw-title tlw-expanded">Reference</span>
       <ul>
         <li><a href="../../mail/emailmessageclass.html">EmailMessage</a></li>
         <li><a href="../../mail/emailmessagefields.html">Message Fields</a></li>
         <li><a href="../../mail/functions.html">Functions</a></li>
         <li><a href="../../mail/exceptions.html">Exceptions</a></li>
       </ul>
     </li>

          </ul>
        </li>
        <li><a href="../../images/index.html">Images</a>
          <ul>
                 <li><a href="../../images/overview.html">Overview</a></li>
     <li><a href="../../images/installingPIL.html">Installing PIL</a></li>
     <li><a href="../../images/usingimages.html">Using the Images API</a></li>
     <li><span class="tlw-title tlw-expanded">Reference</span>
       <ul>
         <li><a href="../../images/imageclass.html">Image</a></li>
         <li><a href="../../images/functions.html">Functions</a></li>
         <li><a href="../../images/exceptions.html">Exceptions</a></li>
       </ul>
     </li>

          </ul>
        </li>
        <li><a href="../../users/index.html">Google Accounts</a>
          <ul>
                 <li><a href="../../users/overview.html">Overview</a></li>
     <li><a href="../../users/userobjects.html">User Objects</a></li>
     <li><a href="../../users/loginurls.html">Login URLs</a></li>
     <li><a href="../../users/adminusers.html">Admin Users</a></li>

     <li><span class="tlw-title tlw-expanded">Reference</span>
       <ul>
         <li><a href="../../users/userclass.html">User</a></li>
         <li><a href="../../users/functions.html">Functions</a></li>
         <li><a href="../../users/exceptions.html">Exceptions</a></li>
       </ul>
     </li>

          </ul>
        </li>
      </ul>
    </li>
    <li><a href="../../config/index.html">Configuration</a>
      <ul>
            <li><a href="../../config/appconfig.html">App Config</a></li>
    <li><a href="../../config/indexconfig.html">Index Config</a></li>
    <li><a href="../../config/cron.html">Scheduled Tasks</a></li>

      </ul>
    </li>
    <li><a href="../index.html">Tools</a>
      <ul>
            <li><a href="../devserver.html">Development Server</a></li>
    <li><a href="../uploadinganapp.html">Uploading and Managing</a></li>
    <li><a href="../uploadingdata.html">Uploading Data</a></li>
    <li><a href="index.html">webapp Framework</a>
      <ul>
             <li><a href="overview.html">Overview</a></li>
     <li><a href="running.html">Running the Application</a></li>
     <li><a href="requesthandlers.html">Request Handlers</a></li>
     <li><a href="requestdata.html">Request Data</a></li>
     <li><a href="buildingtheresponse.html">Building the Response</a></li>
     <li><a href="redirects.html">Redirects, Headers and Status Codes</a></li>
     

     <li><span class="tlw-title tlw-expanded">Reference</span>
       <ul>
         <li><a href="requestclass.html">Request</a></li>
         <li><a href="responseclass.html">Response</a></li>
         <li><a href="requesthandlerclass.html">RequestHandler</a></li>
         <li><a href="wsgiapplicationclass.html">WSGIApplication</a></li>
         <li><a href="utilmodule.html">Utility Functions</a></li>
         
       </ul>
     </li>

      </ul>
    </li>
    <li><a href="../libraries.html">Third-party Libraries</a></li>

      </ul>
    </li>
    <li><a href="../../howto/index.html">How-To</a>
      <ul>
              <li><a href="../../howto/usinggdataservices.html">Google Data Services</a></li>

      </ul>
    </li>

    </ul>
  </li>
</ul>
<div class="line"></div>
<ul>
  <li><h2>Managing Your App</h2>
    <ul>
      <li><a href="../../../theadminconsole.html">The Admin Console</a></li>
      <li><a href="../../../quotas.html">Quotas</a></li>
      <li><a href="../../../billing.html">Billing</a></li>
    </ul>
  </li>
</ul>
<div class="line"></div>
<ul>
  <li><h2>Resources</h2>
    <ul>
      <li><a href="../../../../kb/index.html">FAQ</a></li>
      <li><a href="../../../../articles/index.html">Articles</a></li>
      <li><a href="http://appengine-cookbook.appspot.com/">Cookbook</a></li>
      <li><a href="http://appgallery.appspot.com/">App Gallery</a></li>
      <li><a href="http://code.google.com/p/googleappengine/">SDK Code</a></li>
      <li><a href="http://code.google.com/p/google-app-engine-samples/">Sample Apps Code</a></li>
      <li><a href="../../../../community.html">Discussion Groups</a></li>
    </ul>
  </li>
</ul>
<div class="line"></div>
<ul>
  <li><a href="../../../roadmap.html">Product Roadmap</a></li>
  <li><a href="http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes">Release Notes</a></li>
  <li><a href="../../../revision_history.html">Revision History</a></li>
</ul>

        <a class="hidden" href="#gc-topnav-anchor">More Google App Engine resource links</a>
      </div>

      <div class="g-unit" id="gc-pagecontent">
        <h1 class="page_title">Running the Application</h1>



<p>A webapp application consists of three parts:
<ul>
<li>one or more <a href="requesthandlerclass.html">RequestHandler</a> classes (described in <a href="requesthandlers.html">Request Handlers</a>)</li>
<li>a <a href="wsgiapplicationclass.html">WSGIApplication</a> object that maps URLs to RequestHandler classes</li>
<li>a main routine that runs the WSGIApplication using a CGI adaptor</li>
</ul>
</p>

<p>The WSGIApplication class implements <a href="http://www.python.org/dev/peps/pep-0333/">the WSGI interface</a>, a standard interface between web application frameworks and web servers.  Any WSGI framework can work with App Engine using a WSGI CGI adaptor.  webapp includes such an adaptor: The function <a href="utilmodule.html#run_wsgi_app">run_wsgi_app()</a> takes the application instance and runs it.  You could also use the CGI adaptor included in the <code>wsgiref</code> module in the Python standard library.</p>

<p>The following example maps four URL paths to four RequestHandler classes (not shown), then runs the application using <code>run_wsgi_app()</code>:</p>

<pre class="prettyprint">
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

application = webapp.WSGIApplication([('/', MainPage),
                                      ('/newentry', NewEntry),
                                      ('/editentry', EditEntry),
                                      ('/deleteentry', DeleteEntry),
                                     ],
                                     debug=True)

def main():
  run_wsgi_app(application)

if __name__ == '__main__':
  main()
</pre>

<p>The WSGIApplication constructor takes a list of pairs (tuples) that map URL paths to RequestHandler classes.</p>

<p>An optional <code>debug=True</code> argument puts the application in debugging mode, which tells webapp to display a stack trace in the browser when a handler raises an exception.  By default, webapp just returns an HTTP 500 error when an error occurs.</p>


<h2 id="URL_Mappings">URL Mappings</h2>

<p>The URL path in a mapping is a regular expression.  Regular expression special characters must be escaped.  The regular expression can contain regexp groupings to match parts of the URL.  Patterns matched in groupings are passed to request handlers as arguments.</p>

<pre class="prettyprint">
class BrowseHandler(webapp.RequestHandler):

  def get(self, category, product_id):
    # Display product with given ID in the given category.


# Map URLs like /browse/(category)/(product_id) to BrowseHandler.
application = webapp.WSGIApplication([(r'/browse/(.*)/(.*)', BrowseHandler)
                                     ],
                                     debug=True)

def main():
  run_wsgi_app(application)

if __name__ == '__main__':
  main()
</pre>

<p class="note"><b>Tip:</b> App Engine routes requests to Python scripts based on the URL and mappings specified in the application's <code>app.yaml</code> file.  A webapp WSGIApplication further maps specific URL paths to request handlers.  How you use both mappings is up to you: You could have all non-static URLs go to a single Python script, and have the script dispatch all dynamic URLs to handlers.  Or, you can group functionality into multiple WSGI applications run by different scripts, and use <code>app.yaml</code> to map the appropriate URLs to the appropriate applications.</p>



      </div><!-- end gc-pagecontent -->
   </div><!-- end gooey wrapper -->

    </div> <!-- end codesite content -->

<div id="gc-footer" dir="ltr">
  <div class="text">
    
      <div class="notice"><div id="notice" style="text-align: center; border: 1em 0em 1em 0em">
  Except as otherwise <a
  href="http://code.google.com/policies.html#restrictions">noted</a>,
  the content of this page is licensed under the <a rel="license"
  href="http://creativecommons.org/licenses/by/2.5/">Creative Commons
  Attribution 2.5 License</a>, and code samples are licensed under the
  <a rel="license" href="http://www.apache.org/licenses/LICENSE-2.0">Apache
  2.0 License</a>.
<!-- <rdf:RDF xmlns="http://web.resource.org/cc/" 
              xmlns:dc="http://purl.org/dc/elements/1.1/"
              xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <Work rdf:about="">
    <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
  </Work>
  <License rdf:about="http://creativecommons.org/licenses/by/2.5/">
    <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
    <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
    <requires rdf:resource="http://web.resource.org/cc/Notice"/>
    <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
    <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
  </License>
</rdf:RDF> -->
</div>
Java is a registered trademark of Sun Microsystems, Inc.</div>
    
    &copy;2009 Google -
    <a href="http://code.google.com">Code Home</a> -
    <a href="http://www.google.com/accounts/TOS">Terms of Service</a> -
    <a href="http://www.google.com/privacy.html">Privacy Policy</a> -
    <a href="http://code.google.com/more">Site Directory</a>
    <br /> <br />
    Google Code offered in:
    <a href="http://code.google.com/intl/en">English</a> -
    <a href="http://code.google.com/intl/es">Español</a> -
    <a href="http://code.google.com/intl/ja">日本語</a> -
    <a href="http://code.google.com/intl/ko">한국어</a> -
    <a href="http://code.google.com/intl/pt-BR">Português</a> -
    <a href="http://code.google.com/intl/ru">Pусский</a> -
    <a href="http://code.google.com/intl/zh-CN">中文(简体)</a> -
    <a href="http://code.google.com/intl/zh-TW">中文(繁體)</a>
  </div>
</div><!-- end gc-footer -->

</div><!-- end gc-containter -->

<script type="text/javascript">CODESITE_CSITimer['load'].tick('ats');</script>
<script src="../../../../../js/codesite_tail.pack.04102009.js" type="text/javascript"></script>






  </body>
</html>


